package xyz.lwm.lazycat.beans;

/**
 * bean reference
 *
 * @author lwm
 * @param <T>
 */
public interface BeanRef<T> {

    /**
     * 获取bean设计
     *
     * @return bean design
     */
    BeanDesign<T> getDesign();

    /**
     * 获取bean实例 <br>
     * init bean 和 process bean <br>
     * bean 的生命周期在此体现: init bean -> process bean (process 内部又做了很多事)
     *
     * @return bean instance
     */
    T getBean();

}
